MULTIDOS 1.6 QUICK REFERENCE SUMMARY


MULTIDOS 1.6 General Conventions
------------------------------------------------------------

1. Capital letters MUST be typed as shown on command
lines.

2. A mandatory space is required after all library commands
in which there are additional paramteres or arguments.

3. Information to be entered by the user based upon a list
of valid values and parameters for that command are given
in lower case.

4. Brackets indicate that the information contained within
the brackets is optional and may or may not be entered,
depending on the situation and the user's desire for
clarity.

5. Parentheses indicate the parameter field. This field is
composed of those parameters that will modify the action of
the command to suit the user's needs.

6. Parameters may be abbreviated by using the capital
letter(s) of the parameter name. Lowercase letters may or
may not be typed, depending on the user's need for
clarity.

7. Whenever the term "switch" is part of a library command
line, it represents an ON or OFF condition. If the switch
is left out, ON will be invoked. The acknowledged responses
for ON are (Y), (YES), (ON); for OFF, (N), (NO), (OFF).

8. The letter H indicates that the value it follows is a
hexadecimal value. It is used for entering data to the
system in hexadecimal format.

9. The general form of each command will be the command
itself, followed by the I/O field, followed by the
parameters field. The parameter field and certain portions
of the I/O field are optional and included at the
discretion of the operator.

10. Multiple library commands are permitted provided a command
follows the last character of a given command.


MULTIDOS 1.6 Library Commands
-----------------------------------------------------------

APPEND - append a file to the end of another file
   APPEND filespec1 [TO] filespec 2
      filespec1 - Source device or file
      filespec2 - Destination device or file

ATTRIB - assigns filespec attributes
   ATTRIB filespec (I,V,A=,U=,P=)
      filespec - file with attributes to be altered
      I - file invisible to normal DIR command
      V - file visible to normal DIR command
      A=pw - new access password
      U=pw - new update password
      P=level - protection level
         KILL - Total access
         RENAME - Rename, Write, Read, Execute
         WRITE - Write, Read, Execute
         READ - Read, Execute
         EXEC - Execute only
         NONE - Locked out

AUTO - automatic command after reset
   AUTO doscomd
   AUTO ? - query AUTO command
   AUTO % - execute AUTO command without rebooting
   AUTO !doscmd - inhibit suppression of AUTO command
   AUTO *doscmd - inhibits displaying AUTO doscmds
   AUTO !*doscmd - inhibits suppression of AUTO command
      and displaying AUTO doscmds
   AUTO <ENTER> - delete an auto command
      and inhibits displaying AUTO DOSCMDs
      doscmd - any executable MULTIDOS command.
         Separate multiple commands with linefeeds or
         commas. Maximum of 32 characters permitted

BLINK - disables/enables the blinking cursor
   BLINK [ON/OFF]
      ON - enable blinking cursor
      OFF - disable blinking cursor

BOOT - system (4000H-51FFH) reset from software
   BOOT - there are no parameters

BREAK - disable/enable the BREAK key
   BREAK [ON/OFF]
      ON - enable BREAK key
      OFF - disable BREAK key

BUILD - build DO (ASCII text) file
   BUILD filespec{/IDO}
      filespec - any valid file specification
      BUILD characters (first character in line):
         # - pause DO and wait for <SHIFT> to be pressed
         #msg - pause DO after displaying msg and wait
            wait for <SHIFT> to be pressed
         $ - suppress video output
         $msg - suppress video output after displaying
            msg and wait for <SHIFT> to be pressed
         % - comment line; displays text only

CLEAR - zero RAM from 5200H to TOPMEM
   CLEAR - there are no parameters

CLOCK - displays the real time clock
   CLOCK [ON/OFF]
       ON - turns display on
       OFF - turns display off

CLRDSK - zeroes unused granules on diskette
   CLRDSK [:drn]
      :drn - any valid disk drive number

CLS - clears the screen
   CLS - There are no parameters

CONFIG - set or display power-up drive attributes
   CONFIG - echo system configuration
   CONFIG (?) - echo RAM's current configuration
   CONFIG (X) - write RAM's configuration to system disk,
      remove all SKIPS, modify RAM configuration
   CONFIG [:drn] (STep=,DEnsity=,SIdes=)
      :drn - valid drive number
      STep=nn - nn is drn track-to-track access speed
         (6,12,20,30,40)
      DEnsity=q - q is default density for drn on power
         S - single density
         D - double density
         P - DBLDOS density
      SIdes=ss - ss is the number of sides on a disk
         drive (1 or 2); use apostrophe after drn to
         access side 2 of diskette

DATE - set or display date
   DATE - returns current date
   DATE mm/dd/yy - set date
      mm/dd/yy - two-digit month, day, and year
      Note: AUTO ! command defeats DATE prompt on power-up

DDAM - alters Data Address Marks on single-density
   diskette's directory sectors (Model I only)
   DDAM [:drn] (O/N)
      :drn -  valid drive number
      O - Floppy Disk Controller 1771, Model I
      N - Floppy Disk Controller 1791/1793, Model III)

DEAD - sets memory from 4000H up to 00, resets system
   DEAD - there are no parameters

DEBUG - real time debugging utility
   DEBUG [ON/OFF]
      ON - turn debugger on
      OFF - turn debugger off
      C - single step next instruction, execute CALLS
      Dqqqq<SPACE> - set the display to qqqq in register
         register display mode
      E - produce continues C command until <SPACE>
          pressed
      F - disables all display formats
      G[jjjj[,kkkk]]<ENTER> - place jjjj in PC register
         and execute with optional breakpoints at kkkk
      I - single step next instruction
      M[cccc]<SPACE> - set current modification address to
         cccc. Modification information displayed in lower
         left screen. If cccc omitted, last modification
         address used for cccc. If cccc is currently in
         display, will be overlayed by transparent cursor
         <nn><SPACE> - update display witht nn two-digit
            number
         <SPACE> or <,> - increment modification address
         <LEFT ARROW> - decrement modification address
         <non-hex key> - exit modify memory mode
      N - continuous I commands until <SPACE> is pressed
      O - enable display formats
      P - set display to register mode only (register only
         on right hand side of screen)
      Q - set display to previous register mode or full-
         screen memory mode
      Rrp aaaa<SPACE> - load register pair rp to value aaaa
      S - set display to full screen display mode (256-
         byte page of RAM)
      U - dynamic display update mode to observe execution
         for foreground task; use <SPACE> to exit
      X - set display to register mode (indirect RAM plus
         any 64-byte page of RAM)
      <UP ARROW> - decrement memory display by one page
      <DOWN ARROW> - increment memory display by one page

DEVICE - list current I/O devices and entry points
   DEVICE - there are no parameters
      Abbreviations are as follows:
         KI - keyboard
         DO - video display
         PR - line printer
         RI - RS 232-C input (Model III only)
         RO - RS 232-C output (Model III only)

DIR - display specified diskette directory
   DIR :drn (A,I,K,P,S)
      :drn - any valid drive number
      A - expanded display with level of password pro-
         tection, date of last update, starting track and
         sector, end of file sector, number of segments,
         logical record length, and file size in granules.
      I - display all visible and invisible files
      K - display KILLed files if directory entry loca-
         tion is not overwritten
      P- direct output to printer as well as display;
         if printer is not ready, direct to video only
      S - display system and visible files
      Note 1: Eleven files are displayed at one time; press
         <sp> to display next file or <ENTER> to display
         eleven additional files.
      Note 2: By pressing a number corresponding to the
         drive number, a directory can be displayed (0=
         DIR 0, 1=DIR 1, 2=DIR 2, 3=DIR 3)

DO - substitute disk file for keyboard input
   DO filespec{/IDO}
      filespec{/IDO} - filespec for a DO file
      Note: If machine language code is to be loaded into
         high memory, set TOPMEM before execution of DO

DUMP - transfer RAM contents to disk file
   DUMP filespec (START=,END=,TRA=,CIM,TITLE)
      filespec - any valid MULTIDOS file specification
      STart=X'ssss - starting memory address; X'ssss must
         to or greater than 3000H
      ENd=X'eeee - ending memory address; X'eeee must be
         greater than X'ssss
      TRa=X'tttt - optional transfer address, with 4200H
         as the default
      CIM - direct transfer to diskette sectors without
         load marks
      TITLE - causes DUMP to place title block at beginning
         of file's contents

FORMS - set printout parameters
   FORMS - display FORMS parameters
   FORMS (I,W=,P=,T=,S=,X,N=,L,C)
   I - initialize line counter and character counter to 0;
      inhibits echoing of current values to screen
   W=xxx - maximum width of print line, where xxx=1 to 255
      {255}. RAM address=402AH. If W=255, no carriage
      return is sent after specified character count
   P=xxx - page length in print lines, where xxx=1 to 255
      {66}. RAM address=(not directly available)
   T=xxx - printed text in print lines, where xxx=1 to 255
      {66}. RAM address=4028H. If P=T, pagination inhibited
   S=xxx - blank spaces between blocks of printed text,
      where xxx=1 to 127. RAM address=402CH (lower 7 bits)
   X - writes out to system diskette current W, P, and
      T values for default parameters on power-up
   N=nn - nulls after linefeed
   L - send linefeed after carriage return
   C - direct printer output to RS-232-C (Model III only)

FREE - display number of available file spaces and
   free disk space on all mounted diskettes
   FREE - there are no parameters

HASH - returns HASH code of filespec from Hash Index
   Table on directory track
   HASH filespec
      filespec - any valid MULTIDOS file specification

HELP - provide a brief explanation of library commands
   HELP - display list of available library commands
   HELP command
      command - any valid MULTIDOS library file

KEYBRD - set keyboard attributes
   KEYBRD (B=,C=,E=,G=,K=,L=,R=)
      yn - Y to enable, N to disable
      B=yn - blinking cursor
      C=yn - CLEAR key
      E=yn - Epson graphics converter (adds 32d to
         value of each graphics character)
      G=yn - keyboard graphics converter (if ON, the
         <SHIFT><CLEAR> keys are used to switch keyboard
         between graphics and ASCII entry modes
      K=yn - BREAK key
      L=yn - lower case (Model I only)
      R=yn - repeat keyboard (Model I only)
      W=nnn - cursor character, where nnn=decimal value
    Note: Keyboard attributes are not in effect until
       reboot or power-up

KILL - delete a file
   KILL filespec
      filespec - name of file to be deleted

LIB - displays MULTIDOS library commands
   LIB - there are no parameters

LINK - simultaneous output to devices
   LINK - unLINK all or any LINKed devices
   LINK PR DO - send to printer whatever goes to display
   LINK DO PR - send to display whatever goes to printer
   LINK RO DO - send to display whatever goes to RS-232
      port (Model III only)
   LINK RO PR - send to printer whatever goes to RS-232
      port (Model III only)

LIST - display contents of a diskette file with sup-
   pression of control codes
   LIST filespec
      filespec - any valid MULTIDOS file specification

LOAD - place an object file from diskette into RAM
   LOAD filespec
      filespec - name of file to be loaded
   Note: If program loads below 6800H, some library com-
      mands cannot be used without overlaying program.

PATCH - modify contents of a diskette file
   PATCH filespec (REC=,BYTE=) b1.b2.b3.b4
      filespec - valid MULTIDOS file specification
      REC=nn - physical record in filespec
      BYTE=yy - relative byte in physical record nn
         (input can be 0-255 or X'00'-'FF')
      b1.b2,b3.b4 - decimal value of replacement bytes

PRINT - print out an ASCII file onto the printer
   PRINT filespec
      filespec - any valid MUTILDOS file specification

PROT - change diskette information
   PROT - change diskette's name and date
   PROT :drn (LOck,UNlock,PW,DAte)
      :drn - optional drive specification
      LOck - assign master password to use files
      UNlock - remove all passwords from user files
      PW - change the master password
      DAte - update all files to current RAM date

RENAME - change names of files and retain attributes
   RENAME [$]filespec1 [TO] filespec2
      $ - renamed file's date is changed to current
         RAM date
      filespec1 - file being renamed
      filespec2 - new name for file

RESTOR - recover a KILLed file if file space has not
   been reassigned
   RESTOR filespec
      filespec - any valid MULTIDOS file specification
         Note: Use DIR [:drn] (K) to list KILLed files

ROUTE - directs one device to another
   ROUTE - un-ROUTE devices
   ROUTE device1 device2
      device1 - device being ROUTEd from
      device2 - device being ROUTEd to
         DO - display
         KI - keyboard
         PR - printer
         RI - RS-232 input (Model III only)
         RO - RS-232 output (Model III only)

SETCOM - initialize RS-232 and sets parameters (Model
   III only)
   SETCOM - display current RS-232 settings
   SETCOM (BAUD=,ODD/EVEN,WORD=,STOP=,PE/PD,TE/TD,TR,RTS,
      WAIT/NOWAIT)
      BAUD=rr - Baud rate. Permitted are 50,75,1101,134,
         150,300,600,1200,1800,2000,2400,3600,4800,7200,
         9600,19200
      ODD - set parity to odd
      EVEN - set parity to even
      WORD=ww - Word length. Permitted are: 5,6,7, or 8.
      STOP=bb - Stop bits. Permitted are: 1 or 2
      PD - parity disable
      PE - parity enable
      TE - Transmitter enabled
      TD - Transmitter disabled
      DTR - set DTR high; else DTR is set low
      RTS - set RTS high; else RTS is set low
      WAIT - wait switch on
      NOWAIT - wait switch off

SKIP - read a 40-track diskette in an 80-track drive
   SKIP [:drn]
      :drn - optional drive number of 80-track drive
   Note: All skips are removed when disk is CONFIGured;
      use CONFIG (?) to determine if SKIP is present

TIME - set real-time clock in real-time clock
   TIME - display time
   TIME hh:mm:ss - set system time
      hh:mm:ss - two digit hour, minutes, and seconds
      Note: Current time is stored in locations 4041H-
         4043H (Model I) and 4217H-4219H (Model III)

TOPMEM - set upper MULTIDOS system memory
   TOPMEM - display upper limit of free RAM in decimal
   TOPMEM dddd - set upper limit of memory with decimal
   TOPMEM Hnnnn - set upper limit of memory with hexa-
      decimal number
   Note: TOPMEM value is stored at locations 4049H and
      404AH (Model I) or 4411H and 4412H (Model III)

VERIFY - read after each disk write for parity
   VERIFY ON/OFF
      ON - engage verify
      OFF - disengage verify


MULTIDOS 1.6 Utility Programs
-----------------------------------------------------------
BACKUP - duplicate all files from one diskette to
   another
   BACKUP - engage menu-driven BACKUP utility
   BACKUP [A] [:sdrn] [:ddrn]
      A - causes absolute format {bypass prompt 5}
      :sdrn - drive being copied from {bypass prompt 1}
      :ddrn - drive being copied to {bypass prompt 2}
   Note: If :sdrn and :ddrn are the same, MULTIDOS will
      prompt for diskette swapping.
   Prompts:
      1. "Which drive contains the source diskette?"
         [Reply with a number from 0 to 3]
      2. "Which drive for destination diskette?"
         [Reply with a number from 0 to 3]
      3. "Press "ENTER" when source diskette is in drive x"
         [x is response from prompt 1]
      4. "The source disk has yy tracks, in zz density"
         [yy is number of tracks on source diskette; zz is
         the density of the source diskette]
         "Track count for destination diskette (35 to 96)?"
         [<ENTER> provides default value yy; else enter a
          number from 35 to 96]
         "Press ENTER when destination diskette is in drive
          w"
         [w is response from prompt 2]
      5. "Diskette contains data. Re-format this diskette?"
         [Press <BREAK> to abort BACKUP. To re-format disk-
          ette, press <Y>. Disk is formatted if no data
          address marks are found.]
         "Press 'ENTER' when a MULTIDOS system diskette is
          in drive zero."

CAT - obtain a directory of a TRS-80 diskette, regard-
   less of address marks, density, or sector/granule format
   CAT [:drn] (M,I,S)
      :drn - valid drive number {0}
      M - wait for alien diskette mount in drive 0
      I - include invisible files
      S - include system files

CONVERT - change address marks on single-density
   diskette
   CONVERT [:drn]
      :drn - optional valid drive number; if drive 0,
         MULTIDOS will prompt for diskette swap

COPY - duplicate a single file from one diskette to
   another
   COPY filespec1:sdrn [TO] [filespec2]:ddrn - copy file
      to second diskette
   COPY $ filespec1:sdrn [TO] filespec2:ddrn - copy when
      drive 0 is specified and source or destination disk
      is not a system disk
   COPY # filespec1:sdrn [TO] filespec2:ddrn - copy file
      using current RAM date
      filespec1 - file being copied
      filespec2 - file copied
      :sdrn - source drive number {0}
      :ddrn - destination drive number

DDT - disk drive rotation speed timer
   DDT
   Prompt:
      "Which disk is to be timed (0-3)?"
      [Reply with number 0 - 3]
      Note: Rotation speed should be 297-303 RPM.

FORMAT - prepare a diskette for data storage
   FORMAT - engage menu-driven FORMAT
   FORMAT [:drn] [A]
      :drn - optional disk drive containing diskette to be
         formatted {bypass prompt 1}
      A - absolute format {bypass prompt 8}
   Prompts:
      1. "Which drive contains diskette to be formatted?"
         [Reply with 0,1,2,3 for single-sided diskette;
          with 0',1',2',3' for side 1 of double-sided disk
          drive.]
      2. "Name of diskette to be formatted? (default
         '* DATA *')?"
         [Reply with 1-8 characters] {* DATA *}
      3. "Track count for this diskette (2 to 96 default
         40)?"
         [Reply with number 2-96] {40}
      4. "Date for diskette to be formatted? (default
         mm/dd/yy)?"
         [Reply with mm/dd/yy format] {current RAM date}
      5. "The master PASSWORD for this diskette?"
         [Reply with 1-8 characters] {PASSWORD}
      6. "Single, double, or 'P' density (S, D, or P) -
         default 'x')?"
         [x is current system configuration. Reply with
         S, D, or P] {current system config.}
      7. "Which track for directory (1 to xx)-default 17)?"
         [xx is 1 less than track count. {17}
      8. "Diskette contains data. Proceed with format?"
         [Reply with <Y> to continue; <N> to abort]

GR - configure keyboard for graphics (Model I)
   GR - there are no parameters.
   Note: KEYBRD is a pseudo-version of this utility. Toggle
      between graphics and ASCII mode with <SHIFT><CLEAR>.

MEM - RAM memory test from 4000H to TOPMEM
   MEM - there are no parameters.

RS - RAM Scan. Scan memory from 0000H to FFFFH and
   attempt to locate an 8-bit byte or 16-bit word specified
   by user
   RS - there are no parameters
   Prompts:
      1. "Start?"
         [Enter starting address, in hexadecimal]
      2. "Stop?"
         [Enter ending address, in hexadecimal]
      3. "Byte, or word search (B/W)?"
         [Enter B for 1 byte search, W for 2 byte search.]
      4. "Search byte?" or "Search word?"
         [Enter 2 or 4 hexadecimal characters without H
          suffix or blanks]
      5. For word search, "Enter auxiliary mnemonic"
         [Reply with one or more of the following:
             C - call/carry
             J - jump
             L - load
             M - sign minus
             N - non
             P - sign positive
            PE - parity even
            PO - parity odd
             Z - zero
         These terms may be combined.
         For L, additional prompts are:
            "Immediate or direct (I/D)"?
            [Reply with I or D; if D, prompt is as
             follows:]
            "From, or to the register (F/T)?"
            [Reply with F or T]
            "Accumulator - A or, register pair - BC, DE,
             HL, SP, IX, IY:"
            [Reply with desired register pair]
          If no auxiliary mnemonic is desired, press
          <ENTER>.]

SPOOL - variable RAM buffer for parallel printers
   SPOOL - invoke SPOOL menu
   Prompts to activate SPOOLER:
      1. "How many 256 byte BLOCKS for SPOOLING (1-99)?"
         [Reply with number 1 to 99. Size is selected in
         1/4K increments.]
      2. "Enter MEMORY SIZE (decimal) you want to protect."
         [Press <ENTER> to use MULTIDOS value, <BREAK> to
          abort, or decimal value.]
      3. MULTIDOS will display "The MEMORY SIZE protected
         is xxxxx," where xxxxx is the top of memory value,
         and return to MULTIDOS ready prompt.
   Prompts to suspend SPOOLER:
      1. Press <RIGHT SHIFT><BREAK>
      2. "Buffer?"
         [Reply <Y> to save buffer contents, or <N> to
          reset pointers and send carriage return to the
          printer.]
      3. "Spool?"
         [Reply <Y> to continue SPOOLing, or <N> to unlink
         SPOOLER from printer DCB and restore TOPMEM. Press
         <ENTER> to return to MULTIDOS ready prompt.]
TAPE - 500-baud system tape to disk transfer
   TAPE - there are no parameters
   Prompts:
      1. "Enter 'T' to read TAPE, or 'D' to return to DOS?"
          [Reply with T or D.]
      2. After TAPE displays START, END, and ENTRY points,
         "Is the program 'xxxxxxxx' to be modified (Y or
          N)?"
          [Reply with <N> if no modifications, <Y> for
           modifications.]
      3. "If 'Y' to No. 2, "Are interrupts to be enabled or
         disabled (E or D)?"
         [Reply <E> if interrupts are to be enabled before
          the program executes, or <D> is interrupts are to
          be disabled before the program executes.]
      4. If 'Y' to No. 2, "Enter new base address in HEX?"
         [Reply with four-digit hexadecimal number; should
          be greater than 5300.]
      5. If 'Y' to No. 2, "Initialize LEVEL II type DCB and
         RST vectors (Y or N)?"
         [Reply with <Y> if program is to operate in LEVEL
          II environment, or <N>.]
      6. If 'Y' to No. 2, "Is a new FILESPEC required (Y or N)?
         [Reply with <Y> to enter new filespec, <N> to use
          filespec from tape.]
      7. "Enter filename ........."
         [Enter 1-8 character filename; extension /CMD will
          be used.]

     TAPE Error messages:
        1. "TAPE being read is either:
               * Not a SYSTEM TAPE,
               * Not set up correctly,
               * or too damaged to read."
        2. "TAPE cannot be read because it does NOT
               contain contiguous data."

VFU - Versatile File Utility provides for multiple file
   copying, purging of files, printing a disk directory,
   and menu-based execution of all programs
   VFU - engage VFU menu

   VFU Menu:
         Press       Action
          "C"        Copy
          "E"        Execute
          "H"        Hard copy
          "M"        Move
          "P"        Purge

   VFU Copy Command - copy files from one diskette to
      another, including TRSDOS 1.3 format.
      Prompts and Operation:
         1. "Press 'S' for Selective, or 'T' for Total"
            [Reply with <S> to select files to copy, or
             <T> to copy all files.]
         2. "Include INVISIBLE files?"
            [Reply <Y> to include visible files, or <N> to
             exclude invisible files.]
         3. "Include SYSTEM files?"
            [Reply <Y> to include visible files, or <N> to
             exclude invisible files.]
         4. "Source drive?"
            [Reply with number of drive containing diskette
             with files to be copied.]
         5. "to Destination drive?"
            [Reply with number of drive containing diskette
             to which files are being copied. Note: source
             and destination cannot be the same number.]
         6. Directory of source diskette will be displayed.
            If <S> was selected, mark files to be copied:
               Press <Y>, and a '+' will appear in front of
               the file name, and the cursor will advance
               to the next file. If you do not want to
               copy the files, press <N>, <SPACE>, or
               <RIGHT ARROW> to move cursor to next file.
               Or use the arrow keys to move the cursor
               through the directory. <SHIFT><LEFT ARROW>
               will reposition cursor to the first filename
               and remove all '+' from marked files.
            If <T> was selected, the '+' will appear in
               front of all file names.
            "Press 'A' to abort, 'ENTER' to execute, or
             'R' to repeat."
            [Reply <A> to abort procedure, <ENTER> to begin
             copying, or <R> to repeat function. Hold a
             <SHIFT> to prematurely terminate copying.]

   VFU Execute Command - execute programs from a diskette
      Prompts and Operation:
         1. From alphabetical directory, use the arrow
            keys to position cursor in front of file to be
            executed, and press <Y>.
         2. If selected filespec has the '/CMD' extension,
            VFU will load and execute that filespec.
         3. If the '/CMD' extension is not present, VFU
            will load BASIC and then load and attempt to
            run the selected file.

   VFU Hard Copy Command - print a diskette directory
      Prompts and Operation:
         1. "Press 'S' for Selective, or 'T' for Total"
            [Reply with <S> to select files to print, or
             <T> to copy all files.]
         2. "Include INVISIBLE files?"
            [Reply <Y> to include visible files, or <N> to
             exclude invisible files.]
         3. "Include SYSTEM files?"
            [Reply <Y> to include visible files, or <N> to
             exclude invisible files.]
         4. "Drive number?"
            [Reply with number of drive containing the
             diskette for printing of directory.]
         5. "Enter diskette name or number:"
            [Enter up to 8 characters as identifiers for
             hardcopy.]
         6. "Press 'A' to abort, 'ENTER' to execute, or
             'R' to repeat."
            [Reply <A> to abort procedure, <ENTER> to begin
             copying, or <R> to repeat function.]

   VFU Move Command - copy files to destination diskette
      and delete files from source diskette
      Prompts and Operation:
         1. "Press 'S' for Selective, or 'T' for Total"
            [Reply with <S> to select files to move, or
             <T> to move all files.]
         2. "Include INVISIBLE files?"
            [Reply <Y> to include visible files, or <N> to
             exclude invisible files.]
         3. "Include SYSTEM files?"
            [Reply <Y> to include visible files, or <N> to
             exclude invisible files.]
         4. "Source drive?"
            [Reply with number of drive containing diskette
             with files to be moved.]
         5. "to Destination drive?"
            [Reply with number of drive containing diskette
             to which files are being moved. Note: source
             and destination cannot be the same number.]
         6. Directory of source diskette will be displayed.
            If <S> was selected, mark files to be moved:
               Press <Y>, and a '+' will appear in front of
               the file name, and the cursor will advance
               to the next file. If you do not want to
               move the files, press <N>, <SPACE>, or
               <RIGHT ARROW> to move cursor to next file.
               Or use the arrow keys to move the cursor
               through the directory. <SHIFT><LEFT ARROW>
               will reposition cursor to the first filename
               and remove all '+' from marked files.
            If <T> was selected, the '+' will appear in
               front of all file names.
            "Press 'A' to abort, 'ENTER' to execute, or
             'R' to repeat."
            [Reply <A> to abort procedure, <ENTER> to begin
             moving, or <R> to repeat function. Hold a
             <SHIFT> to prematurely terminate moving.]

   VFU Purge Command - delete files from a diskette
       Prompts and Operation:
         1. "Press 'S' for Selective, or 'T' for Total"
            [Reply with <S> to select files to purge, or
             <T> to purge all files.]
         2. "Include INVISIBLE files?"
            [Reply <Y> to include visible files, or <N> to
             exclude invisible files.]
         3. "Include SYSTEM files?"
            [Reply <Y> to include visible files, or <N> to
             exclude invisible files.]
         4. "Drive number?"
            [Reply with number of drive containing diskette
             with files to be purged.]
         5. "to Destination drive?"
            [Reply with number of drive containing diskette
             to which files are being purged. Note: source
             and destination cannot be the same number.]
         6. Directory of source diskette will be displayed.
            If <S> was selected, mark files to be purged:
               Press <Y>, and a '+' will appear in front of
               the file name, and the cursor will advance
               to the next file. If you do not want to
               purge the files, press <N>, <SPACE>, or
               <RIGHT ARROW> to move cursor to next file.
               Or use the arrow keys to move the cursor
               through the directory. <SHIFT><LEFT ARROW>
               will reposition cursor to the first filename
               and remove all '+' from marked files.
            If <T> was selected, the '+' will appear in
               front of all file names.
            "Press 'A' to abort, 'ENTER' to execute, or
             'R' to repeat."
            [Reply <A> to abort procedure, <ENTER> to begin
             purging, or <R> to repeat function. Hold a
             <SHIFT> to prematurely terminate purging.]

ZAP - read and write diskette sectors, file sectors,
   and memory, or fix diskette directories
   ZAP - engage ZAP menu

   ZAP Menu
      D = Diskette sectors
      F = File sectors
      M = Memory
      X = Fix directory
   Choice

   ZAP Diskette Sectors - modify and update disk sectors
      Prompts and Operation
      1. "Track number (0 to 255/0FFH) ..."
         [Reply with a decimal number 0 to 255 or a hexa-
          decimal number 0 to FF.]

   ZAP Diskette Sectors (Cont'd)
      2. "Sector number (0 to 255/0FFH) ..."
         [Reply with a decimal number 0 to 255 or a hexa-
          decimal number 0 to FF.]
      3. Display mode and movement
         <UP ARROW> - increase track count by one
         <DOWN ARROW> - decrease track count by one
         <RIGHT ARROW> - increase sector by one
         <SHIFT><RIGHT ARROW> - increase sector by one
         <LEFT ARROW> - decrease sector by one
         <SHIFT><LEFT ARROW> - decrease sector by one
         <T> - reselect track/sector
         <S> - reselect sector
      4. Modification and update
         <M> - enter modification mode
         <ARROW KEYS> - move cursor in direction of arrows
         <@> - toggle between HEX and ASCII modification
            mode
         <ENTER> - terminate modification
            <ENTER> - update sector
            <CLEAR> or
            <BREAK> - cancel update
            <@> - see buffer

  ZAP File sectors - access files, regardless of protec-
      tion, density, or operating system, if filespec is
      in the directory (except for TRSDOS 2.7 or 1.3).
      Prompts and Operation
      1. "Filespec .............."
            [Reply with valid file name and extension in
             the case which the file will be in the direc-
             tory. Append the drive number to filespec.]
      2. "Relative sector in file xxxxxxxx/yyy:d (0 to
             mmmm/nnnH) ...."
             [xxxxxxx/yyy:d is the filespec from prompt 1;
              mmmm/nnnH is last relative sector. Enter
              sector number; default is the first sector of
              the file.]
      3. Display mode and movement
         <UP ARROW> - increase file sector by one
         <DOWN ARROW> - decrease file sector by one
         <RIGHT ARROW> - increase file sector by one
         <SH><RIGHT ARROW> - increase file sector by one
         <LEFT ARROW> - decrease file sector by one
         <SH><LEFT ARROW> - decrease file sector by one
      4. Modification and update
         <M> - enter modification mode
         <ARROW KEYS> - move cursor in direction of arrows
         <@> - toggle between HEX and ASCII modification
            mode
         <ENTER> - terminate modification
         <ENTER> - second ENTER updates sector
            <ENTER> - update sector
            <CLEAR> or
            <BREAK> - cancel update
            <address by> - see buffer

   ZAP Memory - memory can be addressed in one byte
      increments
      Prompt and Operation
      1. "Address ...."
         [Reply with memory address.]
      2. Display mode and movement
         <UP ARROW> - increase addr by 256/100H
         <DOWN ARROW> - decrease addr by 256/100H
         <RIGHT ARROW> - increase addr by one
         <SHIFT><RIGHT ARROW> - increase addr by 16/10H
         <LEFT ARROW> - decrease addr by one
         <SHIFT><LEFT ARROW> - decrease addr by 16/10H
      3. Modification and update
         <M> - enter modification mode
         <ARROW KEYS> - move cursor in direction of arrows
         <@> - toggle between HEX and ACII modification mode
         <ENTER> - terminate modification

   ZAP Fix Directory - repair GAT sector for read errors
      and erroneous granule allocation bytes for files and
      HIT sector for read errors and erroneous HIT bytes
      using directory file sector information. It will
      repair directory file sectors for read errors but
      will not repair erroneous directory file sector entry
      information.


MULTIDOS 1.6 Extended BASIC Commands
-----------------------------------------------------------

BASIC - extended disk BASIC and DOS commands
BASIC [ff[v]][,mm][,command]
   ff - number of files (0-15) to be open {3}
   v - file length of other than 256 bytes for
      random files
   mm - highest memory address BASIC will use
   command - any valid BASIC command
BASIC * - recover a BASIC program
BASIC ! - transfer BASIC program which has been loaded
   via an alien DOS to SUPERBASIC, without saving the
   program to disk.
BASIC # - transfer a program from Level II BASIC to
   SUPERBASIC, providing entry to Level II was made via
   CMD"X" from SUPERBASIC. (Exit from Level II with
   program intact, type "SYSTEM," answer "?" with "/16480"
   and hold down <ENTER> and wait for MULTIDOS prompt.)
BBASIC - Boss BASIC (see below)
   - - enter Global Editor (see below)
   : - check for errors in BASIC program (reference opera-
       tors, missing line numbers, overflow or improper
       line numbers) or recover a NEWed program
   :[nn][,iii][,sss][,eee] - renumber BASIC program
      nnn - first line to be assigned to a renumbered line
          (0 to 65529) {10}
      iii - increment to be used in remubering {10}
      sss - starting point in original program where re-
          numbering is to occurr; must be less than nnn {0}
      eee - ending point in original prorgram where renum-
          bering is to stop; must be greater than or equal
          to sss; {65529}
   ;[p][xxx] - cross reference variables and integers
      p - "*" for reference list to screen
          "$" for reference list to printer
      xxx - reference target may be (1) one or two char-
         acter variable without type suffix, (2) integer
         number which may be line number or value used in
         program, (3) reserved word preceded by # symbol
   &[H]dddd - hexadecimal (base 16) constants
      dddd - one to four digit hexadecimal value
   &Odddd - octal (base 8) constants
      dddd - one to four digit octal value
   CLOSE[#][buf[,buf...]] - unassign file buffer by buffer
      # - optional symbol
      buf - expression with value of 1 to 15; if omitted,
          all open file buffers are closed
   CMD"C" - Space compression eliminates spaces and line-
      feeds within program, but not in quoted text, DATA
      and REMark statements
   CMD"D" - loads and executes DEBUGger. To return to point
      of entry, type G<ENTER>.
   CMD"E" - display brief explanation of last MultiDOS error
   CMD"K"vv(0[,0...]) - zero array while retaining original
      dimension of array
      vv - any valid variable name
   CMD"L",vv(0[,0...]) - delete array, free memory space,
      and allow redimensioning of array
      vv - any valid variable name
   CMD"O" - allocates an additional file buffer. To
      determine number of files open, PEEK(&H521A). Do not
      execute from subroutine or FOR...NEXT loop.
   CMD"P" - Pack program lines without renumbering. Answer
      prompt "Maximum ling length" with number between 0
      and 65535; "First" and "Last" with first and last
      lines to be packed. Errors are displayed and packing
      aborted. Ending quotation marks are required.
      Errors are displayed as SN in # (syntax error in
      line), OV in # (overflow error in line), or UL in #
      (undefined line number in line).
   CMD"Q",n1,vv$(0) - sort single-dimensioned array
      n1 - an integer or integer variable representing the
           number of elements to be sorted. If positive,
           ascending sort; if negative, descending sort.
      vv$ - any valid variable name
   CMD"Q",n1,vv$(0,0),n2 - sort a two-dimensioned array
      n1 - an integer or integer variable representing the
           number of elements to be sorted. If positive,
           ascending sort; if negative, descending sort.
      n2 - a positive integer or integer variable repre-
           senting column number to sort
      vv$ - any valid variable name
   CMD"R" - enable the interrupts (Model I only)
   CMD"S" - return to MultiDOS
   CMD"T" - disable the interrupts (Model I only) to be
      invoked when cassette operations are involved
   CMD"U" - remove REM and ' statements
   CMD"V" - display, 12 at a time, all assigned scalar
      variables and string equivalents in the order they
      were created. Press <ENTER> to continue displays.
   CMD"X" - transfer resident BASIC program to Level II
      BASIC. DEBUG is seeded with recovery program to aid
      a return to Disk BASIC (see BASIC #).
   CMD"uuuuu" - execute MultiDOS function from BASIC
      uuuuu - any valid MultiDOS command
   CVD(str$) - convert string to number
      str$ - inverts MKD$ with 8 byte string
   CVI(str$) - convert string to number
      str$ - inverts MKI$ with 2 byte string
   CVS(str$) - convert string to number
      str$ - inverts MKD$ with 4 byte string
   DEF FN xxx(uuu[,uuu...])=www - define function
      xxx - name of function; any valid variable name
      uuu - variable(s) used by expression
      www - expression or formula involving variables uuu
            passed on left side of equal sign
   DEFUSRn = aaaa - define entry address for USR routine
      n - USR routine number (0-9); default is 0
      aaaa - entry point to machine-language routine
   EOF(buf) - end of file detector, returning 0 if file has
      not been read, otherwise -1
      buf - file buffer being checked
   Ftar - find ASCII characters
      tar - target to be searched in resident BASIC program
   FIELD[#]buf,len1 AS str1$[,len2 AS str2$...] - OPEN "D"
      and OPEN "R" file buffer organizer
      buf - file buffer from 1 to 15
      len1 - length of field field
      str1$ - variable name of the first field
      len2 - length of second field
      ... - subsequent len AS str$ pairs for the balance of
         the buffer size
   GET [#]buf[,rec] - OPEN "D" and OPEN "R" record getter
      buf - file buffer 1 to 15
      rec - logical record number; if omitted, current
         record (one unit greater than last record read) is
         used
   INPUT#buf,var[,var...] - OPEN "I" read statement
      buf - file buffer 1 to 15
      var - variable name to contain data frorm the file
   INSTR ([p,]string,substring) - string search returning
      starting position of substring, if found
      p - optional position in string to begin search;
          position 1 is assumed
      string - name of string to be searched
      substring - (1) sub-string for which you are search-
          ing; (2) name of substring for which you are
          searching
   KILL "filespec" or KILL var$ - delete a file from a
      diskette
      filespec - file specification for existing file
      var$ - string defined as a filespec
   LINE INPUT ["message";]vv$ - input string from keyboard
      including punctuation and linefeeds
      message - a prompting message
      vv$ - any valid string variable name
   LINE INPUT#buf,var$ - OPEN "I" read string to 0DH (13D)
      buf - file buffer 1 to 15
      var - variable name to contain the string
   LIST - modified to show graphic characters in quoted text
   LOAD "filespec"[,R] or LOAD var$[,R] - load a BASIC pro-
      gram to RAM
      filespec - valid BASIC program file name
      var$ - string defined as a filespec
      R - loads and runs program without closing any pre-
         viously opened files
   LOC(buf) - file location indiactor, returning one unit
      higher than last current record read for OPEN "D" and
      OPEN "R"; one unit higher than last sector for OPEN"I"
      buf - file buffer number being checked
   LOF(buf) - last record indicator, returning highest
      record for OPEN "D" and OPEN "R"; highest physical
      reocrd (sector) for OPEN "I"
      buf - file buffer number being checked
   LSET str$=exp$ - place str$ in file buffer and left
      justify
      str$ - variable defined via FIELD statement
      exp$ - string expression to be placed in buffer
   MERGE "filespec" or MERGE var$ - combine two programs in
      RAM
      filespec - BASIC program saved in ASCII format
      var$ - string defined as a filespec
   MID$(vv$,p[,c])=rr$ - replace part of a string
      vv$ - variable string to be changed
      p - starting position within string for replacement
      c - optional parameter indicating number of characters
          to be replaced
      rr$ - string to be replaced with vv$
   MKD$(num) - convert numbers to strings
      num - returns 8 byte string; double precision
   MKI$(num) - convert numbers to strings
      num - returns 2 byte string; integer precision
   MKS$(num) - convert numbers to strings
      num - returns 4 byte string; single precision
   NAME "filespec"[,R] or NAME var$[,R] - load and execute
      a program keeping variable values (chaining function)
      filespec - valid BASIC program file name
      var$ - string defined as a filespec
      R - files remain open
   OPEN "mode",buf,var$ - set mode and assign file buffer
      to a filespec
      mode - string or constant, one of the following:
         D - ramdom input/output to an existing file
         E - sequential output to existing file
         I - sequential input from an existing file
         O - sequential output to a file
         R - random input/ouput to a file
      buf - file buffer asiigned to var$, 1 to number of
          file buffers opened during BASIC initialization
      var$ - string defined as a filespec
   OPEN "mode",buf,var$,udl - set mode and assign file
      buffer to a filespec
      mode - "R" or "D" (if "D", udl is ignored)
      var$ - string defined as a filespec
      udl - user defined record length
   PRINT#buf[USING format$;]item[m item...] - OPEN "O"
      and OPEN "E" write command
      buf - file buffer 1 to 15
      USING format$ - sequence of field specifiers used
         with USING
      item - item to be evaluated and written to diskette
      m - delimiter placed between "items"
   PUT [#]buf[,rec] - OPEN "D" and OPEN "R" write statement
      buf - file buffer 1 to 15
      rec - logical record number to be written; if omitted,
         current record (one unit greater than last record
         written) is used
   RSET str$=exp$ - place str$ in file buffer and right
      justify
      str$ - variable defined via FIELD statement
      exp$ - string expression to be placed in buffer
   RUN "filespec"[,R] or RUN var$[,R] - load and execute
      a BASIC program
      filespec - valid BASIC program file name
      var$ - string defined as a filespec
      R - files remain open
   SAVE "filespec"[,A] or SAVE var$[,A] - save program
      filespec - valid BASIC program file name
      var$ - string defined as a filespec
      A - store program in ASCII format
   TIME$ - get current RAM date and time in form of
   USR[n](val) - execute machine code routine
      n - USR routine number (0-9); default is 0
      val - integer or integer variable with value from
        -32768 to 32767


BBASIC - has all the features of SuperBASIC with the
   addition of all of BOSS's single step, trace, variable
   review, and program pushing functions. A new keyboard
   drive is activated, changing @ symbol to a control key.
   The @ symbol is printed by pressing <SHIFT><SPACEBAR>.

   Boss BASIC Trace Functions
   @1 - TRACE OFF - turns off all trace functions
   @2 - TRACE ON (VIDEO) - displays last four lines executed
        in upper right hand corner of CRT
   @3 - TRACE ON (PRINTER) - direct trace to printer in
        six-character format

   Boss BASIC Single Stepping Function
   @4 - SINGLE STEP OFF - turn off all single-step functions
   @5 - SINGLE STEP TO END OF LINE - execute one program
        line and wait until any key is depressed
   @6 - SINGLE STEP INSTRUCTION - execute one BASIC instruc-
        tion then wait until any key is depressed
   @7 - SINGLE STEP WITH TIMED WAIT - execute one program
        line or instruction then continue after predeter-
        ined time (0.25 seconds is default)
        <UP ARROW> - half time delay
        <DOWN ARROW> - double time delay

   Boss BASIC Break Points
   Trace and single step commands can be invoked by your
   program while it is executing:
        POKE 16667,x      FUNCTION
          1               Trace off
          2               Trace to display
          3               Trace to printer
          4               Single step off
          5               Single step line
          6               Single step instruction
          7               Single step delay
        Multiple POKEs are permitted.

   Boss BASIC Variable Review
   @N - review variables
       To query "Length" respond with
          BREAK     Exit function and return to BASIC
          1         1 character variable names, e.g. A=1,
                    with 128 variables max.
          2 or 3    maximum of 3 character variable names,
                    e.g., ZA$=3, with 64 variables max.
          4-7       maximum of 7 character variable names,
                    e.g., A$(21,5)=8, with 32 variables max.
          8-15      maximum of 15 character variable names,
                    e.g., F(R(3,8))=9, with 16 variables max
          16-31     maximum of 31 character variable names,
                    e.g., T#(F,(B(A,N),G(E)))=19, with 8
                    variables max.
          <ENTER>   default to maximum of 7 character names
       After entering variables, <BREAK> to continue the
       review if reviewing less than maximum allowed
   @O - save contents of screen and replace with message
       "C=Change, D=Delete, I=Insert". Variables are dis-
       played in order entered by @N function.
       <CLEAR> - ends review
       <CLEAR> again - restores saved screen
       C - select another variable in place of last variable
           displayed
       D - delete last variable displayed
       I - insert variable prior to last displayed variable
       any key - (except <CLEAR>, C, D, I) advances display
           to next variable selected

   Boss BASIC Stacking Function
   @- - save current BASIC program in high memory and
       adjust memory to beginning of pushed program
   @: - recall last saved program from memory with resident
       program being lost
   @8 - append last saved save program to current one
   @9 - append next to last saved program to current program
   @0 - recall next to last saved program

GLOBAL EDITOR - mass editing of a BASIC program is
   entered by type - at READY prompt
   Prompts:
       T[arget] - search text
       Line A - beginning line number
       Line B - ending line number
       R[eplacement] - text to replace target text
       <ENTER> - re-enter target
       <SHIFT><@> - delete all occurrences of target

   GE - General Changes
       1. Constant, variable name, or item in DATA state-
          ment not enclose in quotes
       2. If target is in quotes, prefix target with $
       3. To change single character variables, enclose
          within single quotes, e.g., 'X'

   GE - General Changes (Cont'd)
       4. To change only first character of variable name,
          append single quote to variable name, e.g., X'
       5. To change second or greater character, prefix
          variable name with single quote, e.g., 'X

   GE - Changes to reserved words
       1. Bracket target (reserved words or arithmetic
          operators) in "<" and ">"
       2. Lowercase is not acceptable

   GE - Build compressed strings
       1. Enter + for target to build compressed graphics
          string
       2. Enter * for target to build compressed string
          with space compression codes

   GE - Merging line numbers
       1. Enter /linenumber to be merged as target
       2. Close open quotes before merging
       3. You can create lines of >255 bytes
       4. Doesn't change references to line

   GE - Split lines containing two or more BASIC instruc-
       tions.
       1. Enter - at target prompt
       2. Line A represents line to be split
       3. Line B represents new line number

SHORTHAND - command abbreviations
   . - list current line of program
   , - edit current line of program
   / - list "BREAK IN" line or last line
   <UP ARROW> - list previous line of program
   <DOWN ARROW> - list next line of program
   <SHIFT><UP ARROW> - list first line of program
   <SHIFT><DOWN><Z> - list list line of program
   ln - list line ln
   C - continue program execution
   D[.] - delete current line
   E[.] - edit current line
   L[.] - list current line
   Mln1,ln2 - move ln1 to ln2
   Mln1,. - move ln1 to current line
   Nln1,ln2 - duplicate ln1 as ln2
   N.,ln2 - duplicate current line as ln2
   P - list page from current line
   Pln - list pgae from ln
   .R - run program
   R"filespec" - RUN filespec


MULTIDOS 1.6 BASIC Error Messages
-----------------------------------------------------------

ERR   ERR/2+1         Error Message
Code   Value
---    -------        -------------
1         0           NEXT without FOR
2         2           Syntax error
3         4           RETURN without GOSUB
4         6           Out of DATA
5         8           Illegal function call
6        10           Overflow
7        12           Out of memory
8        14           Undefined line number
9        16           Subscript out of range
10       18           Redimensioned array
11       20           Division by zero
12       22           Illegal direct
13       24           Type mismatch
14       26           Out of string space
15       28           String too long
16       30           String formula too complex
17       32           Can't continue
18       34           No RESUME
19       36           RESUME without error
20       38           Unprintable error
21       40           Missing operand
22       42           Bad file data
23       44           Disk BASIC feature
100      51           Field organization exceeded logical
                      record length
102      52           Internal error, used CMD"E" for specific
104      53           The buffer number is not available
106      54           Directory does not contain file
108      55           Incorrect file mode
110      56           File previously opened
112      57           Disk read error, use CMD"E" for specific
114      58           Disk write error, use CMD"E" for specific
116      59           File already exists
118      60           End of file encountered
120      61           Drive not available
122      62           Disk space full
124      63           "EOF" reached before any character read
126      64           Bad "PUT" parameter
128      65           Improper file name
130      66           Access mode differs from OPEN mode
132      67           File/program delimiters are too far
                      apart for buffer
134      68           Directory space full
136      69           Write protect notch is covered
138      70           Incorrect password used to access file
140      71           Full directory; file cannot be extended
142      72           File has not been opened
144      73           Undefined function
